b60541766143a830f371f4b7a3b0006a055f40b1,src/main/java/org/roaringbitmap/buffer/ImmutableRoaringBitmap.java,ImmutableRoaringBitmap,selectRangeWithoutCopy,#ImmutableRoaringBitmap#number#number#,447

Before Change


    if (hbStart == hbLast) {
      final int i = rb.highLowContainer.getIndex((short) hbStart);
      if (i >= 0) {
        final MappeableContainer c = rb.highLowContainer.getContainerAtIndex(i).remove(0, lbStart)
            .remove(lbLast + 1, BufferUtil.maxLowBitAsInteger() + 1);
        if (c.getCardinality() > 0) {
          ((MutableRoaringArray) answer.highLowContainer).append((short) hbStart, c);
        }

After Change


    if (hbStart == hbLast) {
      final int i = rb.highLowContainer.getIndex((short) hbStart);
      if (i >= 0) {
        MappeableContainer newContainer = rb.highLowContainer.getContainerAtIndex(i);
        if (lbStart != 0) {
          newContainer = newContainer.remove(0, lbStart);
        }
        if (lbLast != BufferUtil.maxLowBitAsInteger()) {
          newContainer = newContainer.remove(lbLast + 1, BufferUtil.maxLowBitAsInteger() + 1);
        }
        if (newContainer.getCardinality() > 0) {
          ((MutableRoaringArray) answer.highLowContainer).append((short) hbStart, newContainer);